home *** CD-ROM | disk | FTP | other *** search
/ Freelog 100 / FreelogNo100-NovembreDecembre2010.iso / Musique / solfege / solfege-win32-3.17.0.exe / {app} / bin / Lib / bsddb / test / test_get_none.py < prev    next >
Text File  |  2005-10-28  |  2KB  |  102 lines

  1. """
  2. TestCases for checking set_get_returns_none.
  3. """
  4.  
  5. import sys, os, string
  6. import tempfile
  7. from pprint import pprint
  8. import unittest
  9.  
  10. try:
  11.     # For Pythons w/distutils pybsddb
  12.     from bsddb3 import db
  13. except ImportError:
  14.     # For Python 2.3
  15.     from bsddb import db
  16.  
  17. from test_all import verbose
  18.  
  19.  
  20. #----------------------------------------------------------------------
  21.  
  22. class GetReturnsNoneTestCase(unittest.TestCase):
  23.     def setUp(self):
  24.         self.filename = tempfile.mktemp()
  25.  
  26.     def tearDown(self):
  27.         try:
  28.             os.remove(self.filename)
  29.         except os.error:
  30.             pass
  31.  
  32.  
  33.     def test01_get_returns_none(self):
  34.         d = db.DB()
  35.         d.open(self.filename, db.DB_BTREE, db.DB_CREATE)
  36.         d.set_get_returns_none(1)
  37.  
  38.         for x in string.letters:
  39.             d.put(x, x * 40)
  40.  
  41.         data = d.get('bad key')
  42.         assert data == None
  43.  
  44.         data = d.get('a')
  45.         assert data == 'a'*40
  46.  
  47.         count = 0
  48.         c = d.cursor()
  49.         rec = c.first()
  50.         while rec:
  51.             count = count + 1
  52.             rec = c.next()
  53.  
  54.         assert rec == None
  55.         assert count == 52
  56.  
  57.         c.close()
  58.         d.close()
  59.  
  60.  
  61.     def test02_get_raises_exception(self):
  62.         d = db.DB()
  63.         d.open(self.filename, db.DB_BTREE, db.DB_CREATE)
  64.         d.set_get_returns_none(0)
  65.  
  66.         for x in string.letters:
  67.             d.put(x, x * 40)
  68.  
  69.         self.assertRaises(db.DBNotFoundError, d.get, 'bad key')
  70.         self.assertRaises(KeyError, d.get, 'bad key')
  71.  
  72.         data = d.get('a')
  73.         assert data == 'a'*40
  74.  
  75.         count = 0
  76.         exceptionHappened = 0
  77.         c = d.cursor()
  78.         rec = c.first()
  79.         while rec:
  80.             count = count + 1
  81.             try:
  82.                 rec = c.next()
  83.             except db.DBNotFoundError:  # end of the records
  84.                 exceptionHappened = 1
  85.                 break
  86.  
  87.         assert rec != None
  88.         assert exceptionHappened
  89.         assert count == 52
  90.  
  91.         c.close()
  92.         d.close()
  93.  
  94. #----------------------------------------------------------------------
  95.  
  96. def test_suite():
  97.     return unittest.makeSuite(GetReturnsNoneTestCase)
  98.  
  99.  
  100. if __name__ == '__main__':
  101.     unittest.main(defaultTest='test_suite')
  102.